<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        function sum() {
            var s = 10 + 20;
            return s;
        }
        var num = sum();
        console.log(num);


        // 题目一
        /*
        var a = new Object();
        var b = new Object(); 
        console.log(a == b); //  false
        */
        console.log({} == {}); // false


        function fn() {
            return {};
        }

        var a = fn();
        var b = fn();

        console.log(a == b); // false



        function fun() {
            var demo = {};
            function foo() {
                // 这个方法 会访问 外部作用域 的 demo变量
                return demo;
            }
            return foo;
        }

        var fn1 = fun();

        var demo1 = fn1();
        var demo2 = fn1();
        console.log(demo1 == demo2);
        /*
        闭包：
        闭： 关闭，封闭的意思，不让外界访问
        包： 包裹

        作用域链： 内部作用域可以访问外部作用域，反之 外部作用域不能访问内部作用域

        如果外部作用域 希望可以访问到 内部作用域的数据

        方法一： 通过 return 返回 内部作用域（函数作用域）的数据
        方法二： 闭包
        */
    </script>
</body>

</html>